import util from './util.js';
import {
	userLogin,
	login
} from './../api/user.js';

import {
	getCodeLogin,

} from './../api/api.js';
let app = getApp(),
	errNum = 0;

async function loginWx(res) { //登录
	// userInfo.spread_spid = app.globalData.spid;//获取推广人ID
	// userInfo.spread_code = app.globalData.code;//获取推广人分享二维码ID
	var userInfo = await util.wxgetUserInfo();
					userInfo.code = res.code;
					userInfo.avatarUrl = userInfo.avatarUrl || userInfo.avatar;
	await login(userInfo).then(res => {
		if (res.status == 500) {
			wx.hideLoading();
			return;
		}
		app.globalData.token = res.data.token;
		app.globalData.isLog = true;
		if (!app.globalData.userInfo || JSON.stringify(app.globalData.userInfo) == "{}") {
			app.globalData.userInfo = res.data.userInfo;
		}

		app.globalData.expiresTime = res.data.expires_time;
		// app.globalData.memberId = res.data.userInfo.company.MemberId
		app.globalData.isLog = true;
		uni.setStorageSync('app_key', (res.data));
		return '自动登录成功';

	}).catch((err) => {
		uni.hideLoading();
		errNum++;

		console.log(err, '登录失败');
		throw '登录失败，请稍后再试';
	});
};

async function handleUserLogin(data) {
	try {
		const res = await userLogin(data);
		const { status } = res;
		if (status == 200) {
			uni.setNavigationBarTitle({
				title: res.data.name
			});
			uni.$emit('updata', { appName: res.data.name });
			app.globalData.appName = res.data.name;
			app.globalData.token = res.data.token;
			app.globalData.isLog = true;
			res.data.seconds = Math.round(new Date() / 1000) + res.data.seconds;
			app.globalData.seconds = res.data.seconds;
			app.globalData.userInfo = res.data.userInfo;
			uni.setStorageSync('app_key', res.data);
			return '自动登录成功';
		} else {
			errNum++;
			throw '静默授权失败';
		}
	} catch (err) {
		console.log(err);
		errNum++;
		throw '静默授权失败';
	}
}

export default function authLogin() {
	return new Promise((reslove, reject) => {
		util.chekWxLogin().then(res => {

			console.log(res, 'sssssssssss')
			if (!res.isLog) {
				if (errNum >= 2) return
				// #ifdef MP-WEIXIN
				loginWx(res.data).then((msg) => {
					reslove(msg);
				}).catch((err) => {
					reject(err);
				});
				// #endif
				// #ifndef MP-WEIXIN
				handleUserLogin(res.data).then((msg) => {
					reslove(msg);
				}).catch((err) => {
					reject(err);
				});
				// #endif
			} else {
				console.log(res.data, 'pppppppppp')
				let data = res.data
				console.log(data, 'lllllllllllll')
				app.globalData.token = data.token;
				app.globalData.isLog = true;
				res.data.seconds = Math.round(new Date() / 1000) + data.seconds;
				app.globalData.seconds = data.seconds;
				app.globalData.userInfo = data.userInfo;
				uni.setStorageSync('app_key', data);
				reslove('自动登录成功');
			}
		})
	}).catch(err => {
		console.log(err)
		// return uni.showModal({
		// 	title: '提示',
		// 	content: '服务器繁忙，请稍候再试',
		// 	showCancel: false
		// })
		return
		// reject('登录报错' + err)
	});

}